home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / embedded / ucos.exe / INT3.S < prev    next >
Text File  |  1994-06-30  |  1KB  |  60 lines

  1. ; This file contains the INT3 header, which determines which interrupt
  2. ; to process. 
  3. ;
  4.     .include "stats.ah"
  5.  
  6. ;    .set    PARA,1
  7.  
  8.     .extern    _tty_rx_int, _tty_tx_int, _tty_rs_int
  9.  
  10.     .ifdef    PARA
  11.     .extern _ppt_rx_int
  12.     .endif
  13.  
  14.     .text
  15.  
  16. ;-------------------------------------------------------------------
  17. ;              int_3( void )
  18. ;
  19. ; Handle interrupt from internal peripherals.
  20. ;
  21. ;-------------------------------------------------------------------
  22.  
  23.         .global _int_3
  24.  
  25. _int_3:
  26.  
  27.         ; see what pending interrupts exist
  28.         const   kt1, INTR_CNTL
  29.         consth  kt1, INTR_CNTL
  30.         load    0, 0, kt2, kt1          ; read interrupt status register
  31.  
  32.         const   kt3, TXDIA
  33.         and     kt0, kt3, kt2
  34.         cpeq    kt0, kt0, kt3
  35.         jmpt    kt0, _tty_tx_int    ; xmit data interrupt
  36.         store   0, 0, kt3, kt1          ; reset the TXDIA bit
  37.  
  38.         const   kt3, RXDIA
  39.         and     kt0, kt3, kt2
  40.         cpeq    kt0, kt0, kt3
  41.         jmpt    kt0, _tty_rx_int    ; receive dataa interrupt
  42.         store   0, 0, kt3, kt1          ; reset the RXDIA bit
  43.  
  44.     .ifdef    PARA
  45.     const    kt3, PPI
  46.     and    kt0, kt3, kt2
  47.     cpeq    kt0, kt0, kt3
  48.     jmpt    kt0, _ppt_rx_int    ; parallel interrupt
  49.     store    0, 0, kt3, kt1        ; reset the PPI bit
  50.     .endif
  51.  
  52.         const   kt3, RXSIA
  53.         and     kt0, kt3, kt2
  54.         cpeq    kt0, kt0, kt3
  55.         jmpt    kt0, _tty_rs_int          ; serial port receive status interrupt
  56.         store   0, 0, kt3, kt1          ; reset the RXSIA bit
  57.  
  58.     iret
  59.  
  60.